home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 2 / Meeting Pearls Vol. II (1995)(GTI - Schatztruhe)[!].iso / Pearls / dev / GUI / GUIFront / Demos / Source / superduper.c < prev    next >
C/C++ Source or Header  |  1994-10-31  |  7KB  |  196 lines

  1.  
  2. /* SuperDuper.c - The GUI from this outstanding disk duplicator
  3.  *
  4.  * This is a GUIFront example GUI. To build an example, compile and link this
  5.  * file with Generic.o (also supplied).
  6.  * Everything prefixed with DEMO_ is exported to Generic.o.
  7.  */
  8.  
  9. #include <libraries/guifront.h>
  10.  
  11. /* First, some Gadget ID's */
  12.  
  13. enum
  14. {
  15.     GID_STOP,
  16.     GID_COPY,
  17.     GID_READ,
  18.     GID_WRITE,
  19.     GID_CHECK,
  20.     GID_FORMAT,
  21.     GID_OPTIONS,
  22.     GID_INFO,
  23.     GID_AREXX,
  24.     GID_NOWB,
  25.     GID_SAVECON,
  26.     GID_ICONIFY,
  27.     GID_SOURCEDF0,
  28.     GID_SOURCEDF1,
  29.     GID_SOURCEDF2,
  30.     GID_SOURCEDF3,
  31.     GID_DESTDF0,
  32.     GID_DESTDF1,
  33.     GID_DESTDF2,
  34.     GID_DESTDF3,
  35.     GID_MODE,
  36.     GID_PROGRESS,
  37. };
  38.  
  39. /* Some data and tag items we'll be needing later */
  40.  
  41. static const STRPTR modemxlabels[] =
  42. {
  43.     "_Disk2Disk",
  44.     "_Buffer",
  45.     "_HD Buffer",
  46.     "_VD Buffer",
  47.     NULL
  48. };
  49.  
  50. static const struct TagItem modemxtags[] =
  51. {
  52.     {GTMX_Labels, modemxlabels},
  53.     {TAG_DONE},
  54. };
  55.  
  56. static const struct TagItem progresstags[] =
  57. {
  58.     {GTTX_Border, TRUE},
  59.     {TAG_DONE},
  60. };
  61.  
  62. /* Now, the GadgetSpec's we'll be needing for this GUI */
  63.  
  64. static GadgetSpec gadgetspecs[] =
  65. {
  66.     {BUTTON_KIND,  0,0, {0,0,0,0,"_Stop", NULL, GID_STOP,PLACETEXT_IN},NULL,GS_DefaultTags},
  67.     {BUTTON_KIND,  0,0, {0,0,0,0,"_Copy", NULL, GID_COPY,PLACETEXT_IN},NULL,GS_DefaultTags},
  68.     {BUTTON_KIND,  0,0, {0,0,0,0,"_Read", NULL, GID_READ,PLACETEXT_IN},NULL,GS_DefaultTags},
  69.     {BUTTON_KIND,  0,0, {0,0,0,0,"_Write", NULL, GID_WRITE,PLACETEXT_IN},NULL,GS_DefaultTags},
  70.     {BUTTON_KIND,  0,0, {0,0,0,0,"Chec_k", NULL, GID_CHECK,PLACETEXT_IN},NULL,GS_DefaultTags},
  71.     {BUTTON_KIND,  0,0, {0,0,0,0,"_Format", NULL, GID_FORMAT,PLACETEXT_IN},NULL,GS_DefaultTags},
  72.     {BUTTON_KIND,  0,0, {0,0,0,0,"_Options", NULL, GID_OPTIONS,PLACETEXT_IN},NULL,GS_DefaultTags},
  73.     {BUTTON_KIND,  0,0, {0,0,0,0,"_Info", NULL, GID_INFO,PLACETEXT_IN},NULL,GS_DefaultTags},
  74.     {BUTTON_KIND,  0,0, {0,0,0,0,"ARe_xx", NULL, GID_AREXX,PLACETEXT_IN},NULL,GS_DefaultTags},
  75.     {BUTTON_KIND,  0,0, {0,0,0,0,"_NoWB", NULL, GID_NOWB,PLACETEXT_IN},NULL,GS_DefaultTags},
  76.     {BUTTON_KIND,  0,0, {0,0,0,0,"S_aveCon", NULL, GID_SAVECON,PLACETEXT_IN},NULL,GS_DefaultTags},
  77.     {BUTTON_KIND,  0,0, {0,0,0,0,"Iconif_y", NULL, GID_ICONIFY,PLACETEXT_IN},NULL,GS_DefaultTags},
  78.     {CHECKBOX_KIND,0,0, {0,0,0,0,NULL, NULL, GID_SOURCEDF0, PLACETEXT_LEFT},NULL,GS_DefaultTags},
  79.     {CHECKBOX_KIND,0,0, {0,0,0,0,NULL, NULL, GID_SOURCEDF1, PLACETEXT_LEFT},NULL,GS_DefaultTags},
  80.     {CHECKBOX_KIND,0,0, {0,0,0,0,NULL, NULL, GID_SOURCEDF2, PLACETEXT_LEFT},NULL,GS_DefaultTags},
  81.     {CHECKBOX_KIND,0,0, {0,0,0,0,NULL, NULL, GID_SOURCEDF3, PLACETEXT_LEFT},NULL,GS_DefaultTags},
  82.     {CHECKBOX_KIND,0,0, {0,0,0,0,"DF_0:", NULL, GID_DESTDF0, PLACETEXT_LEFT},NULL,GS_DefaultTags},
  83.     {CHECKBOX_KIND,0,0, {0,0,0,0,"DF_1:", NULL, GID_DESTDF1, PLACETEXT_LEFT},NULL,GS_DefaultTags},
  84.     {CHECKBOX_KIND,0,0, {0,0,0,0,"DF_2:", NULL, GID_DESTDF2, PLACETEXT_LEFT},NULL,GS_DefaultTags},
  85.     {CHECKBOX_KIND,0,0, {0,0,0,0,"DF_3:", NULL, GID_DESTDF3, PLACETEXT_LEFT},NULL,GS_DefaultTags},
  86.     {MX_KIND,      0,0, {0,0,0,0,NULL, NULL,GID_MODE,PLACETEXT_LEFT},modemxtags,GS_DefaultTags},
  87.     {TEXT_KIND,    0,0, {0,0,0,0,NULL, NULL,GID_PROGRESS,PLACETEXT_IN},progresstags,GS_DefaultTags},
  88. };
  89.  
  90. /* Now, we group all of these GadgetSpecs into an array of pointers, so the
  91.  * layout engine can locate gadgets merely by their Gadget IDs.
  92.  */
  93.  
  94. GadgetSpec *DEMO_GadgetSpecList[] =
  95. {
  96.     &gadgetspecs[0],  &gadgetspecs[1],  &gadgetspecs[2],  &gadgetspecs[2],
  97.     &gadgetspecs[3],  &gadgetspecs[4],  &gadgetspecs[5],  &gadgetspecs[6],
  98.     &gadgetspecs[7],  &gadgetspecs[8],  &gadgetspecs[9],  &gadgetspecs[10],
  99.     &gadgetspecs[11], &gadgetspecs[12], &gadgetspecs[13], &gadgetspecs[14],
  100.     &gadgetspecs[15], &gadgetspecs[16], &gadgetspecs[17], &gadgetspecs[18],
  101.     &gadgetspecs[19], &gadgetspecs[20], &gadgetspecs[21], NULL,
  102. };
  103.  
  104. /* Finally, the layout tag list itself. This is where most of the work is
  105.  * done. This list completely describes how the above gadgets are arranged
  106.  * in groups in the GUI.
  107.  */
  108.  
  109. ULONG DEMO_LayoutList[] =
  110. {
  111.     GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
  112.  
  113.     GUIL_VertGroup, 1,
  114.         GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth,
  115.  
  116.         GUIL_FrameType, GUILFT_Ridge,
  117.         GUIL_FrameHeadline, "Control Panel",
  118.  
  119.         GUIL_GadgetSpecID, GID_PROGRESS,
  120.  
  121.         GUIL_HorizGroup, 1,
  122.             GUIL_Flags, GUILF_EqualShare | GUILF_EqualHeight,
  123.             GUIL_GadgetSpecID, GID_STOP,
  124.             GUIL_GadgetSpecID, GID_COPY,
  125.             GUIL_GadgetSpecID, GID_READ,
  126.             GUIL_GadgetSpecID, GID_WRITE,
  127.         TAG_DONE,
  128.  
  129.         GUIL_HorizGroup, 1,
  130.             GUIL_Flags, GUILF_EqualShare | GUILF_EqualHeight,
  131.             GUIL_GadgetSpecID, GID_CHECK,
  132.             GUIL_GadgetSpecID, GID_FORMAT,
  133.             GUIL_GadgetSpecID, GID_OPTIONS,
  134.             GUIL_GadgetSpecID, GID_INFO,
  135.         TAG_DONE,
  136.  
  137.         GUIL_HorizGroup, 1,
  138.             GUIL_Flags, GUILF_EqualShare | GUILF_EqualHeight,
  139.             GUIL_GadgetSpecID, GID_AREXX,
  140.             GUIL_GadgetSpecID, GID_NOWB,
  141.             GUIL_GadgetSpecID, GID_SAVECON,
  142.             GUIL_GadgetSpecID, GID_ICONIFY,
  143.         TAG_DONE,
  144.     TAG_DONE,
  145.  
  146.     GUIL_HorizGroup, 1,
  147.         GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
  148.  
  149.         GUIL_FrameType, GUILFT_Ridge,
  150.         GUIL_FrameHeadline, "Src/Dest",
  151.  
  152.         GUIL_VertGroup, 1,
  153.             GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth,
  154.             GUIL_GadgetSpecID, GID_SOURCEDF0,
  155.             GUIL_GadgetSpecID, GID_SOURCEDF1,
  156.             GUIL_GadgetSpecID, GID_SOURCEDF2,
  157.             GUIL_GadgetSpecID, GID_SOURCEDF3,
  158.         TAG_DONE,
  159.  
  160.         GUIL_VertGroup, 1,
  161.             GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth | GUILF_LabelAlign,
  162.             GUIL_GadgetSpecID, GID_DESTDF0,
  163.             GUIL_GadgetSpecID, GID_DESTDF1,
  164.             GUIL_GadgetSpecID, GID_DESTDF2,
  165.             GUIL_GadgetSpecID, GID_DESTDF3,
  166.         TAG_DONE,
  167.     TAG_DONE,
  168.  
  169.     GUIL_VertGroup, 1,
  170.         GUIL_Flags, GUILF_PropShare,
  171.         GUIL_FrameType, GUILFT_Ridge,
  172.         GUIL_FrameHeadline, "Mode",
  173.         GUIL_GadgetSpecID, GID_MODE,
  174.     TAG_DONE,
  175.  
  176.     TAG_DONE,
  177. };
  178.  
  179. /* Obligatory version tag */
  180.  
  181. static const char ver[] = "$VER: SuperDuper 1.0 " __AMIGADATE__;
  182.  
  183. /* Now, some globals used by Generic.o during the call to GF_CreateGUIA() */
  184.  
  185. int DEMO_InitialOrientation = GUIL_HorizGroup;
  186.  
  187. STRPTR DEMO_WindowTitle = "SuperDuper GUI";
  188. STRPTR DEMO_AppID       = "SuperDuper";
  189.  
  190. STRPTR DEMO_Version     = "1.0",
  191.        DEMO_LongDesc    = "Demo program - Super Duper",
  192.        DEMO_Author      = "Michael Berg",
  193.        DEMO_Date        = __AMIGADATE__;
  194.  
  195. BOOL   DEMO_Backfill    = FALSE;
  196.